Flutter 实用工具推荐
本文档整理了 Flutter 开发中常用的实用工具和第三方库,涵盖开发工具、UI 组件、状态管理、网络请求等多个方面。
平级说明 ✳
本文档推荐的工具均为平级关系,无优先级排序。星星评级反映当前社区使用热度和流行趋势,建议根据实际项目需求和技术栈选择合适的组合。
📦 状态管理
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Provider | pub | 状态管理 | Google 推荐、简单易用、基于 InheritedWidget | ⭐⭐⭐⭐⭐ |
| Riverpod | pub | 状态管理 | Provider 改进版、编译时安全、测试友好 | ⭐⭐⭐⭐⭐ |
| Bloc | pub | 状态管理 | 事件驱动、分离业务逻辑、适合大型项目 | ⭐⭐⭐⭐⭐ |
| GetX | pub | 状态管理 + 路由 | 高性能、API 简洁、功能全面(路由/依赖注入) | ⭐⭐⭐⭐⭐ |
| MobX | pub | 响应式状态管理 | 响应式编程、自动追踪依赖、代码生成 | ⭐⭐⭐⭐ |
| Redux | pub | 状态管理 | 单向数据流、可预测、中间件支持 | ⭐⭐⭐ |
🌐 网络请求
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Dio | pub | HTTP 客户端 | 功能强大、拦截器、FormData、文件下载、超时处理 | ⭐⭐⭐⭐⭐ |
| http | pub | HTTP 客户端 | 官方出品、简单易用、基础功能 | ⭐⭐⭐⭐⭐ |
| Retrofit | pub | RESTful API 客户端 | 注解驱动、类型安全、代码生成 | ⭐⭐⭐⭐ |
| Chopper | pub | HTTP 客户端 | 注解驱动、拦截器、自动序列化 | ⭐⭐⭐⭐ |
| Graphql | pub | GraphQL 客户端 | GraphQL 查询、缓存、订阅支持 | ⭐⭐⭐⭐ |
🗄️ 本地存储
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Shared Preferences | pub | 键值对存储 | 官方出品、简单易用、跨平台 | ⭐⭐⭐⭐⭐ |
| Hive | pub | NoSQL 数据库 | 超快速、纯 Dart 实现、加密支持、ACID 兼容 | ⭐⭐⭐⭐⭐ |
| Sqflite | pub | SQLite 数据库 | 关系型数据库、事务支持、成熟稳定 | ⭐⭐⭐⭐⭐ |
| Isar | pub | NoSQL 数据库 | Hive 作者新作、极速、全文搜索、响应式 | ⭐⭐⭐⭐ |
| ObjectBox | pub | NoSQL 数据库 | 对象数据库、极速、关系映射、同步支持 | ⭐⭐⭐⭐ |
| Get Storage | pub | 键值对存储 | GetX 生态、简单易用、加密支持 | ⭐⭐⭐⭐ |
🎨 UI 组件库
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Material Design | Flutter 内置 | Material UI | 官方内置、遵循 Material 规范、组件丰富 | ⭐⭐⭐⭐⭐ |
| Cupertino | Flutter 内置 | iOS 风格 UI | 官方内置、iOS 风格、原生体验 | ⭐⭐⭐⭐⭐ |
| Flutter Screenutil | pub | 屏幕适配 | 响应式布局、字体适配、屏幕尺寸适配 | ⭐⭐⭐⭐⭐ |
| Cached Network Image | pub | 图片缓存 | 网络图片缓存、占位图、加载进度 | ⭐⭐⭐⭐⭐ |
| Photo View | pub | 图片预览 | 缩放、平移、手势支持、自定义 | ⭐⭐⭐⭐ |
| Shimmer | pub | 骨架屏 | 加载动画、渐变效果、自定义 | ⭐⭐⭐⭐⭐ |
| Pull To Refresh | pub | 下拉刷新 | 多种样式、上拉加载、自定义头部 | ⭐⭐⭐⭐ |
🔄 路由导航
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Go Router | pub | 声明式路由 | 官方推荐、URL 驱动、嵌套路由、重定向 | ⭐⭐⭐⭐⭐ |
| Auto Route | pub | 自动路由 | 代码生成、类型安全、嵌套路由、中间件 | ⭐⭐⭐⭐⭐ |
| Get It | pub | 依赖注入 | 服务定位器、简单快速、测试友好 | ⭐⭐⭐⭐⭐ |
| Injectable | pub | 依赖注入生成器 | 代码生成、配合 Get It、注解驱动 | ⭐⭐⭐⭐ |
| Flutter Modulo | pub | 模块化路由 | 模块化管理、依赖注入、路由守卫 | ⭐⭐⭐ |
📱 设备功能
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Image Picker | pub | 图片选择 | 官方插件、拍照/相册、跨平台 | ⭐⭐⭐⭐⭐ |
| Camera | pub | 相机 | 官方插件、拍照、录像、实时预览 | ⭐⭐⭐⭐⭐ |
| Video Player | pub | 视频播放 | 官方插件、本地/网络视频、控制播放 | ⭐⭐⭐⭐⭐ |
| Path Provider | pub | 路径获取 | 官方插件、获取常用目录、跨平台 | ⭐⭐⭐⭐⭐ |
| Permission Handler | pub | 权限管理 | 统一权限 API、运行时权限、状态监听 | ⭐⭐⭐⭐⭐ |
| Location | pub | 位置服务 | GPS 定位、位置流、后台定位 | ⭐⭐⭐⭐⭐ |
| Sensors Plus | pub | 传感器 | 加速度计、陀螺仪、磁力计 | ⭐⭐⭐⭐ |
| Battery Plus | pub | 电池信息 | 电量状态、充电状态、电量级别 | ⭐⭐⭐⭐ |
| Connectivity Plus | pub | 网络连接 | 网络状态监听、WiFi/移动数据 | ⭐⭐⭐⭐⭐ |
| Share Plus | pub | 分享功能 | 系统分享、文本/文件分享 | ⭐⭐⭐⭐⭐ |
| Url Launcher | pub | URL 打开 | 打开链接、电话、邮件、短信 | ⭐⭐⭐⭐⭐ |
📊 图表可视化
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Fl Chart | pub | 图表库 | 美观、折线图/柱状图/饼图、动画支持 | ⭐⭐⭐⭐⭐ |
| Charts Flutter | pub | 图表库 | Google 出品、时间序列、交互性强 | ⭐⭐⭐⭐ |
| Echarts Flutter | pub | ECharts 封装 | 百度 ECharts 移植、功能强大 | ⭐⭐⭐ |
| Circular Chart | pub | 百分比图表 | 环形进度条、线性进度条、自定义 | ⭐⭐⭐⭐ |
🎬 动画效果
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Lottie | pub | After Effects 动画 | AirBnB 出品、JSON 动画、高质量 | ⭐⭐⭐⭐⭐ |
| Rive | pub | 交互式动画 | 状态机、骨骼动画、实时交互 | ⭐⭐⭐⭐⭐ |
| Animated Text Kit | pub | 文字动画 | 打字机、淡入淡出、旋转等效果 | ⭐⭐⭐⭐⭐ |
| Simple Animations | pub | 动画辅助 | 简化动画编写、组合动画、时间轴 | ⭐⭐⭐⭐ |
🧪 测试相关
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Mockito | pub | Mock 框架 | 生成 Mock 对象、行为验证、测试隔离 | ⭐⭐⭐⭐⭐ |
| Fake Async | pub | 虚拟时间测试 | 测试异步代码、时间控制、定时器测试 | ⭐⭐⭐⭐ |
| Integration Test | pub | 集成测试 | 官方出品、端到端测试、真机测试 | ⭐⭐⭐⭐⭐ |
| Golden Toolkit | pub | Golden 测试 | 截图对比、视觉回归测试、多场景 | ⭐⭐⭐⭐ |
🛠️ 开发效率
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Builder | pub | 代码生成 | Dart 构建系统、自定义生成器 | ⭐⭐⭐⭐ |
| Built Value | pub | 值对象生成 | 不可变对象、equals/hashCode、copyWith | ⭐⭐⭐⭐ |
| Freezed | pub | 代码生成器 | Union 类型、不可变类、copyWith 方法 | ⭐⭐⭐⭐⭐ |
| Json Serializable | pub | JSON 序列化生成 | 官方出品、代码生成、类型安全 | ⭐⭐⭐⭐⭐ |
| Equatable | pub | 值相等比较 | 简化 equals/hashCode、样板代码少 | ⭐⭐⭐⭐⭐ |
| Envied | pub | 环境变量管理 | .env 文件读取、编译时生成、类型安全 | ⭐⭐⭐⭐ |
🔧 工具函数
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Lints | pub | 代码规范 | 官方 lint 规则、代码质量检查 | ⭐⭐⭐⭐⭐ |
| Very Good Analysis | pub | 严格 lint | 更严格的代码规范、团队开发 | ⭐⭐⭐⭐ |
| Intl | pub | 国际化 | 官方出品、日期格式化、数字格式化 | ⭐⭐⭐⭐⭐ |
| Timeago | pub | 相对时间 | "刚刚"、"3 小时前"等多语言支持 | ⭐⭐⭐⭐⭐ |
| Collection | pub | 集合工具 | 官方出品、集合操作、算法工具 | ⭐⭐⭐⭐⭐ |
| Async | pub | 异步工具 | Stream 转换器、CancelableOperation | ⭐⭐⭐⭐ |
| Rx Dartz | pub | 函数式编程 | Either 类型、FP 实践、错误处理 | ⭐⭐⭐⭐ |
📲 推送通知
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Firebase Messaging | pub | 推送通知 | Firebase 官方、跨平台推送、主题订阅 | ⭐⭐⭐⭐⭐ |
| Local Notifications | pub | 本地通知 | 自定义通知、定时通知、Action 处理 | ⭐⭐⭐⭐⭐ |
| OneSignal | pub | 推送服务 | OneSignal SDK、用户分群、A/B 测试 | ⭐⭐⭐⭐ |
🔐 安全认证
| 包名 | pub.dev | 用途 | 特点 | 热度 |
|---|---|---|---|---|
| Local Auth | pub | 本地认证 | 指纹/面部识别、生物认证 | ⭐⭐⭐⭐⭐ |
| Flutter Secure Storage | pub | 安全存储 | Keychain/KeyStore 加密存储 Token | ⭐⭐⭐⭐⭐ |
| Crypto | pub | 加密算法 | SHA/MD5/HMAC、哈希计算 | ⭐⭐⭐⭐ |
| Encrypt | pub | 加密解密 | AES/RSA、加密解密封装 | ⭐⭐⭐⭐ |
| Jwt Decoder | pub | JWT 解码 | 解析 JWT Token、过期时间判断 | ⭐⭐⭐⭐ |
💡 选型建议
按项目类型推荐
企业级应用
- 状态管理: Bloc / Riverpod
- 网络请求: Dio + Retrofit
- 本地存储: Hive / Sqflite
- 路由: Go Router / Auto Route
- UI 组件: Material + Cached Network Image
- 工具库: Collection + Equatable + Freezed
电商类项目
- 状态管理: GetX / Provider
- 图片处理: Cached Network Image + Photo View
- 支付: 支付宝/微信支付 SDK
- 推送: Firebase Messaging
- 动画: Lottie + Shimmer
- 适配: Flutter Screenutil
社交类应用
- 即时通讯: 腾讯云 IM/环信 SDK
- 图片视频: Camera + Video Player + Image Picker
- 地图定位: Location + 高德/Google Maps
- 推送: Local Notifications + Firebase
- 状态管理: Bloc / GetX
工具类应用
- 本地存储: Shared Preferences + Hive
- 权限管理: Permission Handler
- 设备功能: Sensors + Battery + Connectivity
- 国际化: Intl + Timeago
- 状态管理: Provider / Riverpod
技术栈搭配建议
Flutter 最佳实践
yaml
dependencies:
# 状态管理
flutter_riverpod: ^2.4.0
# 网络请求
dio: ^5.3.0
retrofit: ^4.0.0
# 本地存储
hive: ^2.2.3
hive_flutter: ^1.1.0
# 路由
go_router: ^12.0.0
# UI 组件
cached_network_image: ^3.3.0
flutter_screenutil: ^5.9.0
shimmer: ^3.0.0
# 工具库
equatable: ^2.0.5
collection: ^1.18.0
intl: ^0.18.0
# 代码生成
freezed_annotation: ^2.4.1
json_annotation: ^4.8.1
dev_dependencies:
# 代码生成器
build_runner: ^2.4.6
freezed: ^2.4.1
json_serializable: ^6.7.0
retrofit_generator: ^8.0.0
# 测试
mockito: ^5.4.2
integration_test: ^3.0.0📋 检查清单
在选择 Flutter 第三方包时,建议考虑以下因素:
- 维护活跃度: pub.dev 评分、GitHub stars、最近更新时间
- 文档完善度: API 文档、示例代码、中文教程
- 平台支持: iOS/Android/Web/Desktop 支持情况
- 兼容性: Flutter 版本要求、其他包的兼容性
- 性能表现: 基准测试、生产环境反馈
- 社区生态: StackOverflow 问题数、Discord/Slack 社区
- 安全性: 权限使用、数据存储安全
- 许可证: MIT/Apache/GPL 等协议合规性
🔗 资源链接
📝 备注
以上推荐的工具均为经过社区验证的常用库,建议根据实际项目需求选择合适的组合。对于新项目,优先考虑官方插件和社区主流选择;对于维护中的老项目,注意版本兼容性和稳定性。定期关注 pub.dev 上的包更新和安全公告。